package com.sunny.observer;

import java.util.ArrayList;
import java.util.List;

//                   _ooOoo_
//                  o8888888o
//                  88" . "88
//                  (| -_- |)
//                  O\  =  /O
//               ____/`---'\____
//             .'  \\|     |//  `.
//            /  \\|||  :  |||//  \
//           /  _||||| -:- |||||-  \
//           |   | \\\  -  /// |   |
//           | \_|  ''\---/''  |   |
//           \  .-\__  `-`  ___/-. /
//         ___`. .'  /--.--\  `. . __
//      ."" '<  `.___\_<|>_/___.'  >'"".
//     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
//     \  \ `-.   \_ __\ /__ _/   .-` /  /
//======`-.____`-.___\_____/___.-`____.-'======
//                   `=---='
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//         佛祖保佑       永无BUG
//
//  
// matian
// 2019.02.15
public class ConcreteSubject implements Subject {

    private int status;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
        this.notifyObservers();
    }

    private List<Observer> observers = new ArrayList();

    @Override
    public void notifyObservers() {
        for (Observer observer : observers) {
            observer.update("我的状态发生了改变，最新状态为："+String.valueOf(status));
        }
    }

    @Override
    public void addObserver(Observer observer) {
        System.out.println(observer.getName()+"--加入了队列");
        observers.add(observer);
    }

    @Override
    public void removeObserver(Observer observer) {
        System.out.println(observer.getName()+"--被移除");
        observers.remove(observer);
    }
}
